import csv
import os

"""
根据txt文件的文件名和文件夹下的数据 读取对应的文本
"""

# 读取目录下的所有txt文件
input_dir = '../../data/Raw/Transcript/Segmented/Combined/'  # 修改为你存放txt文件的目录
output_file = '../../cmu_mosei.csv'  # 输出CSV文件名

# 打开CSV文件，准备写入数据
with open(output_file, mode='w', newline='', encoding='utf-8') as file:
    writer = csv.writer(file)

    # 写入CSV的头部
    writer.writerow(['name','chinese', 'english'])

    # 遍历文件夹中的所有txt文件
    for filename in os.listdir(input_dir):
        if filename.endswith('.txt'):
            txt_file_path = os.path.join(input_dir, filename)

            # 读取每个txt文件的内容
            with open(txt_file_path, mode='r', encoding='utf-8') as txt_file:
                lines = txt_file.readlines()

                # 遍历每行，提取数据并写入CSV
                for line_idx, line in enumerate(lines):
                    # 清除换行符并按 '___' 分割
                    parts = line.strip().split('___')

                    # 确保每行有至少五个部分
                    if len(parts) >= 5:
                        # 提取所需的字段
                        name = f"{parts[0]}_{line_idx}"  # 组合name和行号，例如 _0, _1
                        chinese = ""  # 留空
                        english = parts[4]  # 英文部分

                        # 写入到CSV
                        if name == '#NAME?':
                            print(txt_file_path)
                        writer.writerow([name, chinese, english])

print(f"Data has been written to '{output_file}'.")
